package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.TChannel;
import com.ruoyi.system.domain.TChatRoom;
import com.ruoyi.system.domain.TUser;
import com.ruoyi.system.domain.vo.TChatRoomSearchVo;
import com.ruoyi.system.domain.vo.TUserVo;
import com.ruoyi.system.dto.TChatRoomDTO;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2025-08-18
 */
public interface ITUserService 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public TUser selectTUserById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param tUser 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<TUser> selectTUserList(TUser tUser);

    /**
     * 查询用户VO列表
     * 
     * @param tUser 用户查询条件
     * @return 用户VO集合
     */
    public List<TUserVo> selectTUserVoList(TUser tUser);

    /**
     * 查询用户数量
     * 
     * @param tUser 用户查询条件
     * @return 用户数量
     */
    public int countTUserList(TUser tUser);

    /**
     * 新增【请填写功能名称】
     * 
     * @param tUser 【请填写功能名称】
     * @return 结果
     */
    public Boolean insertTUser(TUser tUser) throws Exception;

    /**
     * 修改【请填写功能名称】
     * 
     * @param tUser 【请填写功能名称】
     * @return 结果
     */
    public Boolean updateTUser(TUser tUser);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteTUserByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteTUserById(Long id);

    /**
     * 获取某类型某时间点的数量
     * @param type
     * @param timestamp
     * @return
     */
    int getCount(int type, Long timestamp,Long minusTimestamp);

    /**
     * 获取当前在线人数
     * @return
     */
    int getSessionCount();

    /**
     * 获取聊天室列表
     * @param searchVo
     * @return
     */
    List<TChatRoom> getChatRoomList(TChatRoomSearchVo searchVo);
}
